When transmitting data between two information processing apparatuses, various methods exist for concealing the data by encryption and subsequently transmitting the encrypted data.
For instance, data can be concealed using Public-key cryptography.
In this case, a pair of keys, composed of a private key and a public key, is generated for each of the information processing apparatuses (hereinafter referred to as “PCs”).
Information encrypted using the public key can only be decrypted using the private key of the pair. Conversely, information encrypted using the private key can only be decrypted using the public key of the pair.
When data D0 is transmitted from a given information processing apparatus (PC-A) to another information processing apparatus (PC-B), the data is first encrypted in PC-A using a public key KPB of the PC-B.
The encrypted data (KPB (D0)) can only be decrypted using a private key KSB of the PC-B.
The encrypted data (KPB (D0)) is then transmitted from the PC-A to the PC-B.
However, in Public-key cryptography which use a public key and a private key in this way, a large amount of time is required to encrypt and decrypt the data.
In the following method, a common key KCA is first generated by the PC-A, which is the transmission source of the data.
The PC-A further encrypts the common key KCA using the private key KSA held only by the PC-A, and generates a signature key KSA (KCA).
Further, the PC-A encrypts the signature key KSA (KCA) using the public key KPB of the PC-B to generate key information KEY(=KPB (KSA(KCA)).
Information made up of the encrypted data KCA (D0) and the key information KEY generated in the manner described is transmitted from the PC-A to the PC-B.
On receipt of these two pieces of information, the transmission target PC-B performs the next processing.
First, the PC-B decrypts the key information KEY using the private key KSB held only by the PC-B to recover the signature key KSA (KCA).
A successful decryption proves that the data has been legitimately transmitted from the PC-A which is a trusted party.
Thereafter, the PC-B uses the common key KCA acquired by the above described decryption processing to decrypt received encrypted data KCA (D0).
An access control method using an administrating computer (hereinafter “server”) to control access with a high degree of reliability by strengthening protection against illegitimate data acquisition and illegitimate access has been proposed (see Japanese Patent Laid-Open No. 2005-242831).
This control method also makes use of a Public-key cryptography, but with this method the public keys (KPA and KPB) of both PCs and trust information TIB (in the case of the PC-B) of the side requesting access is stored in advance in the server.
The trust information TIB is information generated using a special program and settings data which exist in the PC-B, and allows an operating state of the PC-B, which is the transmission target, to be specified.
Further, the private key KSA paired with the public key KPA is stored in advance in the PC-A, and the private key KSB paired with the public key KPB is stored in advance in the PC-B.
When the transmission target PC-B asks the server for an access request to the transmission source PC-A, the PC-B collects information indicating a current operating state of the PC-B, and generates information (verification information VIB) corresponding to the trust information (TIB).
The transmission target PC-B then transmits the access request and the verification information VIB to the server.
On receipt of the access request, the server compares the stored trust information TIB of the PC-B with the received verification information VIB, and checks whether the PC-B which has made the access request is a trustworthy apparatus.
When the two pieces of information (TIB and VIB) match and the apparatus is judged to be trustworthy, the server generates a new pair of keys composed of a private key KB1 and a public key KB2.
The server then transmits an access permission instruction indicating that the PC-B is allowed to access the PC-A, and the newly generated public key KB2 to the transmission source PC-A.
Further, the server transmits a message indicating that access has been permitted together with the newly generated private key KB1 to the transmission target PC-B.
When, for instance, the PC-B has requested transmission of data D1 from the PC-A, the data D1 is transmitted to the PC-B by the transmission source PC-A after encryption using the public key KB2.
However, conventional methods for transmitting the key information and the encrypted data presuppose that each apparatus holds an apparatus-specific private key.
Therefore, if a third party who has illegitimately acquired the private key KSB, for instance, is trusted as being the legitimate user of PC-B, data will be transmitted from the transmission source PC-A to the third party.
Moreover, since the data is transmitted without confirming the reliability of the transmission target PC-B, data may be transmitted from the PC-A to the PC-B when the PC-B is infected by a computer virus.
Hence, with conventional methods, there is a risk of the data being transmitted to an untrustworthy third party and then being divulged or otherwise misused.
The access control method of Japanese Patent Laid-Open No. 2005-242831 allows an improvement in security through verification of the state of the PC before permitting access, but requires that an administrating computer (server) be provided.
Hence, in environments where the server cannot be used, this type of highly secure data transmission cannot be used.
Also, when specific individual users are to transmit data to each other, there are times when it is undesirable to use a system which employs a server.
Hence, an arrangement is desired which allows data transmission between parties with a high degree of security after a mutual confirmation of trustworthiness, even in environments where a server is not used.